This invention relates to an apparatus and method for generating digital electrical signals which are representative of the angular position and rotational velocity of a rotatable shaft or similar movable mechanical component in an electromechanical servomechanism. Generally speaking, a servomechanism is a control system which controls an output physical quantity in response to an input command function. Frequently, the servomechanism is embodied as an electromechanical control system, wherein a mechanical output component is moved in accordance with an electrical input signal. Usually, the servomechanism includes a closed feedback loop, wherein a signal which is representative of the current status of the output physical quantity is compared with the current input command function. If there is a difference between the two, an error signal is generated which tends to urge the output physical quantity into compliance with the input command function.
In a typical electromechanical servomechanism, the output mechanical component may be a shaft which is rotated about an axis in accordance with a predetermined electrical input position signal. The servomechanism can function to rotate the shaft at a certain rotational velocity, to move the shaft to a certain rotational position, or to apply a certain torque or tension to a load in response to the electrical input signal. For example, most electric motors contain a rotor shaft which is driven to rotate about an axis relative to a stationary stator. Many conventional electric motors are controlled so as to rotate the rotor shaft at a certain rotational velocity relative to the stator in response to an electrical input signal.
In such servomechanisms, it is often desirable or necessary to know what the precise status of the output physical quantity is at any given point in time. As mentioned above, the servomechanism usually includes a closed feedback loop, wherein a signal representative of the current status of the output physical quantity is compared with the current input command function. In the electric motor example mentioned above, it is often necessary or desirable to know what the precise rotational velocity or position of the rotor shaft is relative to the stator. The rotational velocity or position signal can be used in several manners to improve the operation of the electric motor. For instance, the rotational position signal can be used to increase the accuracy of the rotational velocity or angular position of the rotor shaft relative to the stator. Also, the rotational position signal can be used to control the timing of the energizations and deenergizations of the windings of the electric motor in order to increase efficiency and reduce undesirable torque ripple.
The rotational position signal of the rotor shaft in an electric motor is usually expressed as an electrical signal, either analog or digital in nature, which is representative of the angular position of the rotor shaft relative to a predetermined starting or reference position. Thus, the rotational position signal can be expressed as an analog or digital signal which is representative of a number between 0° and 360°, wherein 0° represents the predetermined starting position or reference position of the rotor shaft relative to the stator. A number of devices are known in the art for generating electrical signals which are representative of the angular position of the rotor shaft relative to a predetermined starting or reference position.
A resolver is one well known device for generating electrical signals which are representative of the relative angular position of a rotatable shaft. A resolver input is typically supplied a sinusoidal signal (i.e., the “excitation signal”) that drives the two resolver outputs. These outputs oscillate at the same frequency as the input but their amplitudes vary with shaft position and their phases are offset 90° with respect to each other (referred to as the sine and cosine signals). Essentially, the input is a carrier signal and the position is amplitude-modulated on the outputs. Generally speaking, a resolver is an electromechanical transducer which generates one or more output signals which vary in magnitude with the rotational position of the rotor shaft. Typically, the resolver generates two analog electrical output signals, one which is representative of the sine of the relative angle of the rotor shaft, and the other which is representative of the cosine of the relative angle of the rotor shaft. A number of different resolver structures are known in the art for performing this general function. The analog output signals may be used to control the operation of the servomechanism. Alternatively, it is known to convert the analog electrical output signals to respective digital electrical signals for subsequent use by a digital computing device, such as a microprocessor, in controlling the operation of the servomechanism.
To save size and weight in a servo application, high-speed motors can be utilized because they can produce the same amount of power as their larger and much slower counterparts. Motor control at high speeds, greater then 10,000 RPM, presents a number of challenges that must be overcome if high-speed motors are to be used in servo applications. For example, conventional hardware based resolver-to-digital conversion (RDC) integrated circuits have limitations in terms of resolution as a function of tracking rate. This is due to clock rate of the integrated circuit (IC) which is fixed. As one requires a motor to rotate at higher speeds due to application requirements, one must trade off resolution. If the position signal is of lower resolution, then the signal will have more harmonic content. To obtain velocity, it is simply the derivative of position. This results in a velocity feedback signal with even more harmonic content. This can have adverse affects on servo performance. Another limitation is that the accuracy has a hard limit again due to the implementation in hardware. Finally, the bandwidth of the device is fixed by the tracking rate. If the user desires to tune the bandwidth to obtain a faster response since the motor is running at high-speed, that is not possible with current hardware IC's. Furthermore, the phase lag in velocity changes as a function of speed. This is because often at higher speeds the gain of the system changes and with that the phase of any filtering and hardware devices also changes. At higher speeds, the phase lag in the velocity feedback becomes worse to a point that it affects the higher-level control loops and thus imposes limitations on servo performance.
While generally effective for many applications, known resolvers can generate errors in the analog electrical output signals which can reduce the accuracy of the resultant rotor shaft position signal. Currently, hardware-based components called resolver-to-digital converters (RDC) are employed to process resolver signals and to produce a digital representation of the shaft position. Most of the processing is performed with hard-wired analog circuitry and is incapable of tracking motion at high speeds and accelerations. A new way of processing resolver signals is required for accurate, high-speed, position and velocity control. Additionally, high speed servomotors have a winding inductance lower than standard servomotors. Pulse width modulated power applied to these windings at typical frequencies produce an unacceptable level of current ripple. Thus, it would be desirable to provide an apparatus and method which is effective for correcting time-varying errors which are generated in known resolvers so as to improve the overall accuracy of the position measurement and to permit the use of simpler and lower-cost resolver structures.